#ifndef SKINFACTORY_H__
#define SKINFACTORY_H__

#include "ProductButton.h"
#include "ProductComboBox.h"
#include "ProductTextField.h"


namespace npAbstractFactory
{
    class SkinFactory
    {
        public: SkinFactory();
        public: virtual ~SkinFactory();
        public: SkinFactory(const SkinFactory& cpy);
        public: SkinFactory& operator=(const SkinFactory& asn);
        public: virtual SkinFactory* clone() const;

        public: virtual ProductButton* createButton() = 0;
        public: virtual ProductComboBox* createComboBox() = 0;
        public: virtual ProductTextField* createTextField() = 0;
    };
} // namespace npAbstractFactory


#endif //SKINFACTORY_H__